var word_search = "";
var index_page = 0;

function dialog_show_edit(id) {
    $('#name').val("");
    $('#name').prop('disabled', false);
    $('#code').val("");
    $('#code').prop('disabled', false);
    $('#type').val("");
    $('#type').prop('disabled', false);
    $('#cost').val("");
    $('#cost').prop('disabled', false);
    $('#price').val("");
    $('#price').prop('disabled', false);
    $('#quantity').val("");
    $('#quantity').prop('disabled', false);
    $('#category_id').val("");
    $('#subcategory_id').val("");
    $('#brand_id').val("");
    $('#model_id').val("");
    $('#scaffold_id').val("");
    $('#file_id').val("");
    $('#position_id').val("");
    $('#unit_id').val("");

    $(".loader").show();
    $(".modal-content").hide();
    $('#btn_dialog_create').hide();
    $('#btn_dialog_update').show();
    $('#btn_dialog_delete').hide();
    $('#div_dialog_title').html("Ver - Editar");
    $('#div_dialog_crud').modal('show');

    $.getJSON("warehouse_product_read.php", {id: id}
    ).done(function(data) {
        $('#warehouse_product_id').val(id);
        $('#name').val(data[0].name);
        $('#name').prop('disabled', false);
        $('#code').val(data[0].code);
        $('#code').prop('disabled', false);
        $('#type').val(data[0].type);
        $('#type').prop('disabled', false);
        $('#cost').val(data[0].cost);
        $('#cost').prop('disabled', false);
        $('#price').val(data[0].price);
        $('#price').prop('disabled', false);
        $('#quantity').val(data[0].quantity);
        $('#quantity').prop('disabled', false);
        $('#category_id').val(data[0].category_id);
        $('#subcategory_id').val(data[0].subcategory_id);
        $('#brand_id').val(data[0].brand_id);
        $('#model_id').val(data[0].model_id);
        $('#scaffold_id').val(data[0].scaffold_id);
        $('#file_id').val(data[0].file_id);
        $('#position_id').val(data[0].position_id);
        $('#unit_id').val(data[0].unit_id);

        $(".loader").hide();
        $(".modal-content").show();
    }).fail(function(jqXHR, textStatus) {
        alert("Error: " + textStatus);
    });
}

function dialog_show_drop(id) {
    $('#name').val("");
    $('#name').prop('disabled', false);
    $('#code').val("");
    $('#code').prop('disabled', false);
    $('#type').val("");
    $('#type').prop('disabled', false);
    $('#cost').val("");
    $('#cost').prop('disabled', false);
    $('#price').val("");
    $('#price').prop('disabled', false);
    $('#quantity').val("");
    $('#quantity').prop('disabled', false);
    $('#category_id').val("");
    $('#subcategory_id').val("");
    $('#brand_id').val("");
    $('#model_id').val("");
    $('#scaffold_id').val("");
    $('#file_id').val("");
    $('#position_id').val("");
    $('#unit_id').val("");

    $(".loader").show();
    $(".modal-content").hide();
    $('#btn_dialog_create').hide();
    $('#btn_dialog_update').hide();
    $('#btn_dialog_delete').show();
    $('#div_dialog_title').html("Desea Eliminar?");
    $('#div_dialog_crud').modal('show');

    $.getJSON("warehouse_product_read.php", {id: id}
    ).done(function(data) {
        $('#warehouse_product_id').val(id);
        $('#name').val(data[0].name);
        $('#name').prop('disabled', true);
        $('#code').val(data[0].code);
        $('#code').prop('disabled', true);
        $('#type').val(data[0].type);
        $('#type').prop('disabled', true);
        $('#cost').val(data[0].cost);
        $('#cost').prop('disabled', true);
        $('#price').val(data[0].price);
        $('#price').prop('disabled', true);
        $('#quantity').val(data[0].quantity);
        $('#quantity').prop('disabled', true);
        $('#category_id').val(data[0].category_id);
        $('#subcategory_id').val(data[0].subcategory_id);
        $('#brand_id').val(data[0].brand_id);
        $('#model_id').val(data[0].model_id);
        $('#scaffold_id').val(data[0].scaffold_id);
        $('#file_id').val(data[0].file_id);
        $('#position_id').val(data[0].position_id);
        $('#unit_id').val(data[0].unit_id);

        $(".loader").hide();
        $(".modal-content").show();
    }).fail(function(jqXHR, textStatus) {
        alert("Error: " + textStatus);
    });
}


function pagination_callback(page_index, jq) {
    index_page = page_index;
    $.getJSON("warehouse_product_list_m.php", {
        pag: page_index,
        word_search: word_search
    }).done(function(data) {
        $("#tbl > tbody").html("");
        $.each(data, function(key, val) {
            $("#tbl > tbody").append(
                    "<tr><td style=\"display:none\" class=\"id\">" + val.id +
                    "</td><td class=\"category_id\">" + val.str_category +
                    "</td><td class=\"code\">" + val.code +
                    "</td><td class=\"fullname\">" + val.fullname +
                    "</td><td class=\"scaffold_id\">" + val.location +
                    "</td><td class=\"quantity\">" + val.quantity +
                    "</td><td align=\"center\">" +
                    "<a style=\"cursor:pointer;\" onclick=\"dialog_show_edit(" + val.id + ");\" ><i class=\"fa fa-edit lblue\"></i></a> &nbsp;" +
                    "<a style=\"cursor:pointer;\" onclick=\"dialog_show_drop(" + val.id + ");\" ><i class=\"fa fa-trash-o red\"></i></a>" +
                    "</td></tr>");

        });
    });
}

function load( ) {
    $("#tbl > tbody").html("");
    $.getJSON("warehouse_product_count_m.php", {word_search: word_search}, function(data) {
        $("#pagination").pagination(data[0].count, {
            //num_edge_entries: 3,
            num_display_entries: 10,
            callback: pagination_callback,
            items_per_page: 10
        });
    });
}

jQuery(document).ready(function($) {
    load();
    $.getJSON("warehouse_product_list_category_m.php", function(data) {
        $.each(data, function() {
            $("#category_id").append(new Option(this.name, this.id));
        });
    });
    $.getJSON("warehouse_product_list_subcategory_m.php", function(data) {
        $.each(data, function() {
            $("#subcategory_id").append(new Option(this.name, this.id));
        });
    });
    $.getJSON("warehouse_product_list_brand_m.php", function(data) {
        $.each(data, function() {
            $("#brand_id").append(new Option(this.name, this.id));
        });
    });
    $.getJSON("warehouse_product_list_model_m.php", function(data) {
        $.each(data, function() {
            $("#model_id").append(new Option(this.name, this.id));
        });
    });
    $.getJSON("warehouse_product_list_scaffold_m.php", function(data) {
        $.each(data, function() {
            $("#scaffold_id").append(new Option(this.name, this.id));
        });
    });
    $.getJSON("warehouse_product_list_file_m.php", function(data) {
        $.each(data, function() {
            $("#file_id").append(new Option(this.name, this.id));
        });
    });
    $.getJSON("warehouse_product_list_position_m.php", function(data) {
        $.each(data, function() {
            $("#position_id").append(new Option(this.name, this.id));
        });
    });
    $.getJSON("warehouse_product_list_unit_m.php", function(data) {
        $.each(data, function() {
            $("#unit_id").append(new Option(this.name, this.id));
        });
    });
//begin search
    $("#txt_search").autocomplete({
        source: "warehouse_product_search_m.php",
        minLength: 2,
        select: function(event, ui) {//ui.item.value, ui.item.id, this.value  
            word_search = ui.item.value;
            load();
        }
    });

    $("#txt_search").keyup(function() {
        if ($("#txt_search").val() == "") {
            word_search = "";
            index_page = 0;
            load();
        }
    });
//end search

    $("#form_dialog_crud").validate({
        rules: {
            name: "required",
            code: "required",
            type: "required",
            cost: "required",
            price: "required",
            quantity: "required",
        },
        messages: {
            name: " Ingrese Descripcion",
            code: " Ingrese Codigo",
            type: " Ingrese Tipo",
            cost: " Ingrese Costo",
            price: " Ingrese Precio",
            quantity: " Ingrese Cantidad",
        }
    });

    $('#btn_dialog_show_new').click(function() {
        $('#div_dialog_title').html("Nuevo");
        $('#name').val("");
        $('#name').prop('disabled', false);
        $('#code').val("");
        $('#code').prop('disabled', false);
        $('#type').val("");
        $('#type').prop('disabled', false);
        $('#cost').val("");
        $('#cost').prop('disabled', false);
        $('#price').val("");
        $('#price').prop('disabled', false);
        $('#quantity').val("");
        $('#quantity').prop('disabled', false);
        $('#category_id').val("");
        $('#subcategory_id').val("");
        $('#brand_id').val("");
        $('#model_id').val("");
        $('#scaffold_id').val("");
        $('#file_id').val("");
        $('#position_id').val("");
        $('#unit_id').val("");

        $('#btn_dialog_create').show();
        $('#btn_dialog_update').hide();
        $('#btn_dialog_delete').hide();
        $('#div_dialog_crud').modal('show');

    });

//actions
    $('#btn_dialog_create').click(function() {
        if ($("#form_dialog_crud").valid()) {
            $(".loader").show();
            $.post("warehouse_product_create.php", {
                name: $('#name').val(),
                code: $('#code').val(),
                type: $('#type').val(),
                cost: $('#cost').val(),
                price: $('#price').val(),
                quantity: $('#quantity').val(),
                category_id: $('#category_id').val(),
                subcategory_id: $('#subcategory_id').val(),
                brand_id: $('#brand_id').val(),
                model_id: $('#model_id').val(),
                scaffold_id: $('#scaffold_id').val(),
                file_id: $('#file_id').val(),
                position_id: $('#position_id').val(),
                unit_id: $('#unit_id').val(),
            }).done(function(data) {
                load();
                $('#div_dialog_crud').modal('hide');
            }).fail(function(jqXHR, textStatus) {
                alert("Error: " + textStatus);
            });
        }
    });

    $('#btn_dialog_update').click(function() {
        if ($("#form_dialog_crud").valid()) {
            $(".loader").show();
            $.post("warehouse_product_update.php", {
                id: $('#warehouse_product_id').val(),
                name: $('#name').val(),
                code: $('#code').val(),
                type: $('#type').val(),
                cost: $('#cost').val(),
                price: $('#price').val(),
                quantity: $('#quantity').val(),
                category_id: $('#category_id').val(),
                subcategory_id: $('#subcategory_id').val(),
                brand_id: $('#brand_id').val(),
                model_id: $('#model_id').val(),
                scaffold_id: $('#scaffold_id').val(),
                file_id: $('#file_id').val(),
                position_id: $('#position_id').val(),
                unit_id: $('#unit_id').val(),
            }).done(function(data) {
                load();
                $('#div_dialog_crud').modal('hide');
            }).fail(function(jqXHR, textStatus) {
                alert("Error: " + textStatus);
            });
        }
    });

    $('#btn_dialog_delete').click(function() {
        $(".loader").show();
        $.post("warehouse_product_delete.php", {
            id: $('#warehouse_product_id').val()
        }).done(function(data) {
            load();
            $('#div_dialog_crud').modal('hide');
        }).fail(function(jqXHR, textStatus) {
            alert("Error: " + textStatus);
        });
    });


});
